//package com.yunxin.mybatisplus.utils;
//
//import com.github.pagehelper.Page;
//import com.github.pagehelper.PageInfo;
//
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * ClassName: PageUtil
// * Package: com.yunxin.shweb.utils
// * Description: 内存使用pageHelper 模拟实现
// *
// * @Author sbx
// * @Create 2025/9/4 9:26
// */
//public class PageUtil {
//
//    /**
//     * 将完整列表按页码和页大小分页，返回 Page 对象（模拟 PageHelper 行为）
//     *
//     * @param fullList    完整数据列表（可为 null 或 empty）
//     * @param currentPage 当前页码，从 1 开始，自动校正
//     * @param pageSize    每页条数，必须 > 0
//     * @return 分页后的 Page 对象
//     */
//    public static <T> PageInfo<T> convertToPage(List<T> fullList, int currentPage, int pageSize) {
//        if (fullList == null) {
//            fullList = new ArrayList<>();
//        }
//
//        // 计算总数
//        long total = fullList.size();
//
//        // 计算总页数
//        int pages = (int) Math.ceil((double) total / pageSize);
//        pages = pages <= 0 ? 1 : pages;
//
//        // 当前页码越界处理
//        currentPage = currentPage <= 0 ? 1 : currentPage;
//        currentPage = Math.min(currentPage, pages);
//
//
//        // 计算分页边界
//        int fromIndex = (currentPage - 1) * pageSize;
//        int toIndex = Math.min(fromIndex + pageSize, fullList.size());
//
//        // 截取当前页数据
//        List<T> pagedList = new ArrayList<>();
//        if (fromIndex < fullList.size()) {
//            pagedList = new ArrayList<>(fullList.subList(fromIndex, toIndex));
//        }
//
//        // 手动创建 Page 对象
//        Page<T> page = new Page<>();
//        // 添加数据
//        page.addAll(pagedList);
//        page.setPageNum(currentPage);
//        page.setPageSize(pageSize);
//        page.setTotal(total);
//        page.setPages(pages);
//        page.setStartRow(fromIndex);
//        page.setEndRow(toIndex - 1);
//
//        return new PageInfo<>(page);
//
//    }
//}
